paned: Shrinkable widgets don't require a size
authorBenjamin Otte <otte@redhat.com>
Thu, 5 Apr 2012 09:30:41 +0000 (11:30 +0200)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 5 Apr 2012 09:30:41 +0000 (11:30 +0200)
This could otherwise lead to very funny size request behaviors, in
particular in empathy.

https://bugzilla.gnome.org/show_bug.cgi?id=587441

gtk/gtkpaned.c

index f2fbe13dad62cabc40945358e38a19d48e3b0752..5b374b2dfd31e5d32cbf09850b1fabb7ff608332 100644 (file)
@@ -904,7 +904,10 @@ gtk_paned_get_preferred_size (GtkWidget      *widget,
   if (priv->child1 && gtk_widget_get_visible (priv->child1))
     {
       get_preferred_size_for_size (priv->child1, orientation, size, &child_min, &child_nat);
-      *minimum = child_min;
+      if (priv->child1_shrink && priv->orientation == orientation)
+        *minimum = 0;
+      else
+        *minimum = child_min;
       *natural = child_nat;
     }
 
@@ -914,7 +917,8 @@ gtk_paned_get_preferred_size (GtkWidget      *widget,
 
       if (priv->orientation == orientation)
         {
-          *minimum += child_min;
+          if (!priv->child2_shrink)
+            *minimum += child_min;
           *natural += child_nat;
         }
       else